<?xml version="1.0" ?>
<lz:project xmlns:lz="http://schemas.icitadel.com/Lazarus/Source.xsd"
	name="Lazarus" namespace="OR.Lazarus" owner="dbo" user="jmuharsky" namespaceprefix="lz" namespaceuri="http://schemas.icitadel.com/Lazarus/DBInheritance.xsd" businessconcept="DBInheritance">
	<lz:description>Test XML for Database Inheritance implementation.</lz:description>
	<lz:datasource location="WARREN" schema="InheritanceTest" user="gkirrel" password="hcccc.be1" />
	<lz:defaults />
	<lz:objects>
		<!-- Comment out the EmployeeType object to test auto-generation of Generalization TypeOf tables. -->
		<lz:object name="EmployeeType" alias="employee-type" title-field="Title">
			<lz:fields>
				<lz:field name="PKID" alias="pkid" type="Int">
					<lz:indexes>
						<lz:index type="Primary" />
					</lz:indexes>
				</lz:field>
				<lz:field name="Title" type="Varchar" size="255" />
			</lz:fields>			
			<lz:methods>
				<lz:method type="Get" />
				<lz:method type="List" />
				<lz:method type="Create" />
				<lz:method type="Update" />
			</lz:methods>
		</lz:object>
		<lz:object name="Employee" alias="employee" type-table="EmployeeType" type-field="Type" title-field="Name">
			<lz:fields>
				<lz:field name="PKID" alias="pkid" type="Identity">
					<lz:indexes>
						<lz:index type="Primary" />
					</lz:indexes>
				</lz:field>
				<lz:field name="Type" alias="employee-type">
					<lz:indexes>
						<lz:index type="Foreign" object="EmployeeType" role="TypeOf" />
					</lz:indexes>
				</lz:field>
				<lz:field name="Description" alias="description" type="Text" />
				<lz:field name="Name" type="Varchar" size="255" />
				<lz:field name="Address" type="Varchar" size="255" />
			</lz:fields>
			<lz:methods>
				<lz:method type="Get" />
				<lz:method type="List" />
				<lz:method type="Create" />
				<lz:method type="Update" />
				<lz:method type="Custom" name="UpdateAll">
					<lz:method-params>
						<lz:method-param name="NewName" type="Varchar" size="255" direction="in" />
					</lz:method-params>
					<lz:method-effects>
						<lz:object-ref effecttype="Update" ref="Employee">
							<lz:fields>
								<lz:method-effect field="Name" param="NewName" />
							</lz:fields>
						</lz:object-ref>
					</lz:method-effects>
				</lz:method>
			</lz:methods>
		</lz:object>
		<lz:object name="SalariedEmployee" alias="salaried-employee">
			<lz:implements>
				<lz:implement ref="Employee" db-method="Aggregate" />
			</lz:implements>
			<lz:fields>
				<lz:field name="Salary" type="Float" size="15" scale="2" />
			</lz:fields>
			<lz:methods>
				<lz:method type="Get" />
				<lz:method type="List" />
				<lz:method type="Create" />
				<lz:method type="Update" />
			</lz:methods>
		</lz:object>
		<lz:object name="HourlyEmployee" alias="hourly-employee">
			<lz:implements>
				<lz:implement ref="Employee" db-method="Category" />
			</lz:implements>
			<lz:fields>
				<lz:field name="Rate" type="Float" size="15" scale="2" />
			</lz:fields>
			<lz:methods>
				<lz:method type="Get" />
				<lz:method type="List" />
				<lz:method type="Create" />
				<lz:method type="Update" />
			</lz:methods>
		</lz:object>
		<lz:object name="Manager" alias="manager">
			<lz:implements>
				<lz:implement ref="SalariedEmployee" db-method="Category" />
			</lz:implements>
			<lz:fields>
				<lz:field name="HairPointLength" type="Float" size="15" scale="2" />
			</lz:fields>
			<lz:methods>
				<lz:method type="Get" />
				<lz:method type="List" />
				<lz:method type="Create" />
				<lz:method type="Update" />
			</lz:methods>
		</lz:object>
		<lz:object name="Executive" alias="executive">
			<lz:implements>
				<lz:implement ref="Manager" db-method="Aggregate" />
			</lz:implements>
			<lz:fields>
				<lz:field name="Office" type="Varchar" size="10" />
			</lz:fields>
			<lz:methods>
				<lz:method type="Get" />
				<lz:method type="List" />
				<lz:method type="Create" />
				<lz:method type="Update" />
			</lz:methods>
		</lz:object>
	</lz:objects>
	<lz:intersections>
	</lz:intersections>
	<lz:security>
	</lz:security>
	<lz:businessviews>
	</lz:businessviews>
</lz:project>